serviceup.png

InBox VoixtelIntegration

Versão 6.10.5

Data de Criação 06/06/2019

Recursos

Este módulo permite a integração entre o sistema de telefonia Voixtel e o software OTRS.

Pré-requisitos

Framework

As seguintes versões de framework OTRS são suportadas:

  • [6.0.x]

Módulos

Os seguintes módulos são requeridos:

  • InBox Core 6.31.8 ou superior
  • XML::Simple
  • URI::Encode

Sistema Operacional

Os seguintes sistemas operacionais são requeridos:

  • [Nenhum]

Software de Terceiros

Os seguintes softwares de terceiros são requeridos:

  • [Nenhum]

Instalação

bin/otrs.Console.pl Admin::Package::Install /path/to/InBox\ VoixtelIntegration 6.10.5.opm

Configuração

Este módulo pode ser configurado via Configuração do Sistema na interface administrativa. As seguintes opções de configurações estão disponíveis:

VoixtelIntegration::WebServiceConfig

Configura os parâmetros necessário de acesso à API do Voixtel.

Para isso, basta definir nos campos indicados abaixo:

Agent: usuário Voixtel
AgentPin: senha
Authentication: tipo de autenticação (Valor padrão: Digest)
Host: Seu endereço de host

VoixtelIntegration::StatusMessageConfig

Configura as mensagens correspondentes a cada status da ligação.

Valor padrão:

Attended  => Ligação atendida.
Cancelled => Ligação finalizada
Error     => Falha. Não foi possível realizar a ligação.
Ringing   => Ligação em andamento...
Trying    => Discando...

image2

VoixtelIntegration::Core::DynamicFieldStatusCall

Configura o valor para o campo dinâmico StatusCall.

Valor padrão:

agent_pickup => Ligação atendida. call_abandoned => Ligação abandonada.

Eventos possíveis:

agent_offering: Quando o cliente realiza a ligação

call_unanswered: Quando o atendente não atende a ligação

agent_pickup: Quando o atendente atende a ligação

call_abandoned: Quando o cliente abandona a ligação

image3

VoixtelIntegration::Core::DefaultCustomerFromTicket

Define um cliente e um usuário cliente para a criação do chamado quando o cliente não está cadastrado no OTRS.

VoixtelIntegration::Core::NewTicket

Define os parâmetros necessários para realizar a criação do chamado.

VoixtelIntegration::Core::SocketIO

Define a URL do servidor Socket.io.

VoixtelIntegration::Core::MapQueues

Define o mapeamento da fila para qual será definido o chamado na sua criação.

Uso

Configurando o módulo

Para utilizar este módulo, você deve configurar os parâmetros corretamente na configuração 'VoixtelIntegration::WebServiceConfig'. Certifique-se também de que nas preferências pessoais do perfil do seu usuário, o ramal esteja preenchido no campo 'Ramal atual'. Para isso, acesse Preferências Pessoais, clique em Perfil do Usuário, cadastre o ramal, como indicado abaixo:

image4

Realizar Ligação

Para realizar a ligação, um JavaScript deve ser adicionado na configuração Loader da tela de abertura de chamados. Como exemplo, utilizaremos a action AgentTicketPhone.

Acesse o menu administrativo, vá em Configuração do Sistema e pesquise por Loader::Module::AgentTicketPhone###002-Ticket. Em seguida, adicione o JavaScript de nome Core.Agent.MakeCallVoixtel.js nas configurações, salve e implemente as alterações.

image5

Acesse Novo chamado via fone e selecione um usuário cliente.

*Importante: O usuário escolhido deve ter um número de telefone (ou celular) cadastrado no OTRS. Sem isso, não será possível realizar a ligação.

Após selecionar o cliente, um widget será exibido na lateral da tela de abertura. Clicando no ícone você realizá a chamada para o cliente:

image6

Quando a chamada for iniciada, um pop-up será exibido, informando o status da ligação:

image7

image8

É possível fazer ligações no action AgentTicketZoom. Para isso é necessário adicionar o arquivo Core.Agent.MakeCallVoixtelTicketZoom.js na configuração do sistema Loader::Module::AgentTicketZoom###002-Ticket. Após isso o widget de realizar ligação será apresentado corretamente.

Recebendo Ligações

Um campo dinâmico de nome CustomerVIP deve ter sido criado no seu ambiente após a instalação. Entretanto, caso isso não ocorra, crie o campo da seguinte forma:

image9

Após, faça a seguinte configuração no aquivo Defaults.pm encontrado em Kernel/Config, no Map do CustomerUser:

[ 'DynamicField_CustomerVIP', Translatable('CustomerVIP'), 'CustomerVIP',    0, 0, 'dynamic_field', '', 0, undef, undef ],

Esse campo será exibido no cadastro do usuário-cliente de forma que poderá ser admitido se um cliente é vip ou não, como exibido no exemplo:

image10

Um campo dinâmico de nome StatusCall deve ter sido criado no seu ambiente após a instalação. Entretanto, caso isso não ocorra, crie o campo da seguinte forma:

image11

Um JavaScript deve ser adicionado:

Acesse o menu administrativo, vá em Configuração do Sistema e pesquise por Loader::Agent::CommonJS###000-Framework.

Em seguida, adicione os JavaScript de nomes na configuração, nesta sequencia:

inbox-thirdparty/socket.io-client/dist/socket.io.js Core.Agent.CallOffering.js

Salve e implemente as alterações.

Quando o atendente recebe uma ligação, um chamado é aberto no OTRS e o mesmo é notificado através de um popup como abaixo:

image12

Servidor Socket.io

Para instarlar ou subir o servidor Socket.io, faça os passos abaixo:

  • Instale o Node.js e npm no servidor:

Adicionar NodeSource no repositorio yum

curl -sL https://rpm.nodesource.com/setup_10.x | bash -

Instalar Node.js and npm

yum install -y nodejs
  • Instalar modules node requerido:

Clone o repositiro e acesse a pasta server-socket.io, ou baixe apenas os arquivos app.js e package.json para o servidor.

Acesse a pasta em que se encontra esses arquivos e execute os comandos abaixo:

Instalar modulos node requeridos

npm install

Instalar modulo para iniciar servidor

npm install forever -g

Iniciar servidor socket.io

forever start app.js

Para parar o servidor execute

forever stop http_server.js

Teste se servidor está com o comando:

curl "http://127.0.0.1:3000/?EIO=4&transport=polling"

Ou acessando no navegador

http://127.0.0.1:3000